package com.gitee.sop.layui.adminserver.module.background.admin.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sop.layui.adminserver.module.base.bo.SqlTree;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;
import java.util.UUID;

/**
 * @author: admin
 * @date: 2020-04-24
 * @version: 1.0.0
 */
@Data
@Accessors(chain = true)
public class SysApplication extends SqlTree implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 名称
     */
    private String name;

    /**
     * 描述 最大64个字符长度
     */
    private String description;

    /**
     * 应用id 用于请求当前系统服务时，标记所请求的应用，并依据其加密密钥解析加密数据：建议使用uuid标识，去掉中间“-”分割符号
     */
    private String appId;

    /**
     * 应用密钥 用于在请求时对敏感数据进行加密，也用请求证书的生成和解密；固定32个字符长度，使用AES加密；建议使用uuid标识，去掉中间“-”分割符号
     */
    private String secretKey;

    /**
     * 启停状态
     * 0 停止；
     * 1 启动
     */
    private Integer status;

    /**
     * 创建日期
     */
    private Date createdTime;

    /**
     * 创建者uuid 描述应用与用户的关联关系，默认为空串，表示当前主系统
     */
    private String creatorUuid;

    public SysApplication init() {
        this.status = 1;
        this.appId = UUID.randomUUID().toString().replace("-", "");
        this.secretKey = UUID.randomUUID().toString().replace("-", "");
        return this;
    }

    public boolean isDisable() {
        return this.status != null && this.status == 0;
    }
}
